iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
Modern Web

用 Angular Material 開發應用程式系列 第 29

Day 29 - CDK 的公用程式

  • 分享至 

  • xImage
  •  

Coercion

在早期 Angular 還沒有針對輸入屬性提供 transform 來轉換輸入的資料型別時,可以使用 CDK 所提供的 coerceBooleanProperty 方法來實作把字串轉成布林值。

private _disabled = false;
@Input()
get disabled(): boolean {
  return this._disabled;
}
set disabled(value: boolean | string) {
  this._disabled = coerceBooleanProperty(value);
}

除了把文字轉成布林值或數值外,也可以利用 coerceStringArray 來在文字與陣列之間進行轉換。

Layout

實務上可能需求在不同尺寸的螢幕中使用應用程式,CDK 有提供 BreakpointObserver 服務來監控螢幕大小。

private readonly breakpointObserver = inject(BreakpointObserver);

在 CDK 裡有定義了如 Small、Medium、Large、 Tablet 與 Web 等多種尺寸,我們可以使用這個服務的 isMatched() 方法來判斷當下的螢幕尺寸是否符合預期尺寸。

breakpointObserver.isMatched('(max-width: 599px)');

如果需要動態的監控螢幕的變化,就需要使用 observe 方法。此方法可以傳入多種尺寸,進而當顯示尺寸到目標尺寸時,就觸發相關作業。

breakpointObserver.observe([
  Breakpoints.HandsetLandscape,
  Breakpoints.HandsetPortrait
]).subscribe(result => {});

上一篇
Day 28 - Drag & Drop
下一篇
Day 30 - Portals & Overlay
系列文
用 Angular Material 開發應用程式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言